Supporting Model Refactorings Through Behaviour Inheritance Consistencies
نویسندگان
چکیده
This paper addresses the problem of consistency preservation in model-driven software development. Software models typically embody many different views that need to be kept consistent. In the context of consistency within a model, behaviour inheritance consistencies restrict the way the behaviour of a subclass can specialize the behaviour of a superclass. In the context of model evolution, model refactorings restructure a model while preserving its behavioural properties. It is still an open research question how to define behaviour preservation properties for model refactorings. We claim that behaviour inheritance consistencies correspond, in an evolution context, to the preservation of behavioural properties between model versions. To illustrate this claim, we implemented consistency rules and preservation behaviour rules in Racer, a reasoning engine for description logics. We show how the same logic rules can be used to detect behaviour inheritance inconsistencies in a model and to detect the preservation of call behaviour properties during model refactoring.
منابع مشابه
The Need for Object - Oriented Reengineering
insert() abstract delete() abstract lookup() abstract forall() HashSet ... ListSet ... Set impl insert() delete() lookup() forall() deleteAll() union() constructor() changeImpl() SetImpl abstract insert() abstract delete() abstract lookup() abstract forall() abstract changeImpl() constructor (type subtypeSetImpl) { impl = new type ; }insert() abstract delete() abstract lookup() abstract forall(...
متن کاملModelchecking Correctness of Refactorings - Some Experiments
Refactorings are changes made to programs, models or specifications with the intention of improving their structure and thus making them clearer, more readable and re-usable. Refactorings are required to be behaviour-preserving in that the external behaviour of the program/model/specification remains unchanged. In this paper we show how a simple type of refactorings on object-oriented specifica...
متن کاملEdelta: An Approach for Defining and Applying Reusable Metamodel Refactorings
Metamodels can be considered one of the key artifacts of any model-based project. Similarly to other software artifacts, metamodels are expected to evolve during their lifecycle and consequently it is crucial to develop approaches and tools supporting the definition and re-use of metamodel refactorings in a disciplined way. This paper proposes Edelta, a domain specific language for specifying r...
متن کاملComposite Refactorings for EMF Models
Models are primary artifacts in model-based, and especially, in model-driven software development processes. Due to their central role, the quality of models must be high to lead to software products of high quality. A common technique for improving the quality of software artifacts is refactoring. Originally developed for code structure improvement, the concept of refactoring has been raised t...
متن کاملUsing Programming Laws to Modularize Concurrency in a Replicated Database Application
As the use of AspectJ grows, it seems appropriate to define refactorings for that language. Most of the already defined aspect-oriented refactorings do not have a formal basis to ensure it preserves behaviour. This paper shows the application of programming laws and derived refactorings to separate a crosscutting concern from a system’s core logic using AspectJ. We used programming laws to incr...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2004